perm filename SERVO.DOC[CMS,LCS]3 blob
sn#464122 filedate 1979-07-24 generic text, type T, neo UTF8
00100 JOINT SERVO INTERFACE.
00200
00300 HOST - JOINT COMMUNICATION.
00400
00500 Host - joint interface system.
00600 The host - joint interface system is a standard LSI 11 parallel
00700 interface which is connected through the joint i/o interface board
00800 to each joint processor's memory. The joint i/o interface board also
00900 serves as the host's connection to the external parallel inputs and
01000 outputs.
01100
01200 CSR0.
01300 The CSR0 bit is the address/data bit for I/O transfers to
01400 and from the joint processors memory. 0 for address and 1 for data.
01500
01600 CSR1.
01700 The CSR1 bit is the read/write bit for I/O to the joint
01800 processors memory. 0 for read and 1 for write.
01900
02000 DRINBUF.
02100 The input buffer is used to read data from a joint's memory
02200 when a joint is addressed and CSR1 is not set. This buffer is also
02300 used for the same functions as the earlier board (XIN, INTOL, ATTN REQ,
02400 etc.) .
02500
02600 DROUTBUF.
02700 When CSR0 is 0 the output buffer is used to address the memory
02800 and select the joint. Bits 0 through 2 select the joint, and bits
02900 8 through 13 are the complement of the memory address. Bit 3, when
03000 set, enables the joint select counter for accessing the joints in
03100 sequence.
03200 When CSR0 is 1 the output buffer is used to write data to the
03300 selected joint's memory.
03400 The output buffer also is used for other functions as in the
03500 earlier board (XOUT, etc.) .
03600
03700 When CSR0 is set, reading the DRINBUF by the host when CSR1
03800 is set, or writing the DROUTBUF by the host when CSR1 is clear,
03900 should be avoided because doing so transfers data according to CSR1.
04000
04100 When reading a joint's memory immediately after writing the
04200 same location without clearing CSR0, it is nessesary to read DRINBUF
04300 twice before getting valid data.
00100 SHARED MEMORY DEFINITIONS.
00200
00300 STATUS: 77000
00400 Bit 15 is the servo error bit. It is set if any error bit in
00500 the status word is set. When it is set, the servo enable bit in the
00600 mode word is cleared unless the diagnostic bit in the mode word is set
00700 and the cause of the error is a host time out (bit 13 in STATUS).
00800 Bit 14 is the check word error bit.
00900 Bit 13 is the host time out error bit.
01000 Bit 12 is the joint interrupt error bit.
01100 Bit 11 is the position out of range error bit.
01200 All other bits of the STATUS word are undefined.
01300
01400 MODE: 76000
01500 Bit 15 of the mode word is the servo enable bit. When clear,
01600 the DAC output will allways be zero. It must be set before the joint
01700 will accept a position command or servo in diagnostic mode.
01800 Bit 14 is the integrator enable bit.
01900 Bit 13 is the LSB servo enable bit.
02000 Bit 12 is the diagnostic mode enable bit. When set and the
02100 servo is enabled, host time out errors are disabled from clearing the
02200 servo enable bit in the MODE word.
02500 All other bits are undefined.
02600
02700 CKWORD: 75000
02800 This word is set to 377 (octal) by the joint on reset and when
02900 written by the host is used as a command. After being read by the
03000 joint, the joint resets it to 377 to handshake with the host.
03100 There are only two valid commands so far. 177001 is a no-op
03200 and 177400 is the position command. Before a position command is
03300 written the servo must be enabled in the MODE word and the new position
03400 must be written in the CMDPOS word.
03500 Invalid commands cause the joint processor to do a reset and
03600 set the check word error bit.
03700
03800 CMDPOS: 74000
03900 This word is used for the new position value in a position
04000 command. Bits 14 and 15 must match or the joint will do a reset and
04100 set the position out of range error flag.
04200
04300 IOCTRL: 73000
04400 This word is a copy of the JCR output port in bits 8 through
04500 15. IOCTRL is read only. Bit 10 is the position mode bit which, when
04600 cleared, puts the joint in free mode (setpoint tracks encoder) .
04700
04800 CURPOS: 72000
04900 This is the current position from the encoder.
00100 SHARED MEMORY DEFINITIONS.
00200
00300 The rest of the shared memory words serve the same function as
00400 in the earlier servo.
00500
00600 NINTER: 71000 Bits 8 through 15.
00700 INTSCL: 70000 Bits 8 through 15.
00800 HSTLIM: 67000 Bits 8 through 15.
00900
01000 FRICTN: 66000 Floating point velocity error gain.
01100 (136414 octal = -0.125 for a gain of 1.)
01200 GRAVTY: 65000 Integer DAC offset variable.
01300 POSTOL: 64000 Integer position tolerance band variable.
01400 INTTOL: 63000 Integer integrator tolerance band variable.
01500 PGAIN: 62000 Floating point position error gain.
01600 (40014 octal = 1.0 for a gain of 1.)